#pragma once

#include <arpa/inet.h>
#include <netinet/in.h>
#include <string>

//封装socket地址类型
class InetAddress
{
public:
    explicit InetAddress(uint16_t port=0,std::string ip="127.0.0.1"); // 禁止隐式转换

    explicit InetAddress(const sockaddr_in &addr):addr_(addr) {}

    std::string toIp() const;
    std::string toIpPort() const;
    uint16_t toPort() const;

    const sockaddr_in* getSockAddr() { return &addr_; }
    void setSockAddr(const sockaddr_in &addr) { addr_=addr; }
private:
    sockaddr_in addr_;
};